Estructura de Datos con C++ by César Liza Ávila
autor:César Liza Ávila
La lengua: spa
Format: epub
editor: Vearsa
publicado: 2013-03-18T16:00:00+00:00
5.4. INDICAR EL MOVIMIENTO A REALIZAR EN LAS TORRES DE HANÓI
Permita que el usuario indique el movimiento a realizar en el problema de las torres de Hanói (ver problema 1.16 de este libro). Sugerencia: use tres pilas.
Solución:
Los anillos colocados en la cima de cada torre son los primeros en ser retirados. Este es justamente el comportamiento de las pilas, así que definimos tres. Cada una representa una torre y las inicializamos a NULL. Leemos el número de anillos deseado (n) y colocamos en la primera pila cada número (i) que representa el tamaño del anillo. Colocamos los mayores primero e imprimimos el estado inicial de cada torre.
Debemos mover cada anillo desde una torre hacia otra, con la condición de que un anillo de mayor valor nunca se coloque encima de otro menor. Las condiciones utilizadas en el programa contemplan todas las posibilidades de movimiento entre torres. Después de cada movimiento, imprimimos las torres e incrementamos el contador. Esto se repite hasta que las torres 1 y 2 no tengan anillos; vale decir, hasta que todos los anillos estén en la torre 3.
La función mover( ) comprueba si el movimiento es válido. Para ello, la torre de origen (a) debe tener anillos (a!=NULL). Si la pila destino (b) tiene elementos, debemos comprobar que el anillo a mover (a->nro) sea de menor diámetro que el anillo de la torre destino (b->nro), en cuyo caso retiramos el anillo de la torre origen y lo colocamos en la torre destino (push(b, pop(a)). Si el anillo a mover es de mayor diámetro que el ubicado en la cima de la torre destino, entonces se mostrará un mensaje de error. Si la pila destino está vacía, movemos el anillo desde la torre de origen, sin ninguna otra comprobación. Si la torre de origen está vacía, no habrá ningún movimiento.
descargar
Este sitio no almacena ningún archivo en su servidor. Solo indexamos y enlazamos. Contenido proporcionado por otros sitios. Póngase en contacto con los proveedores de contenido para eliminar el contenido de derechos de autor, si corresponde, y envíenos un correo electrónico. Inmediatamente eliminaremos los enlaces o contenidos relevantes.
La doctrina del shock by Naomi Klein(980)
Homo Deus by Yuval Noah Harari(951)
El Arte de la Guerra by Sun Tsu(946)
Elon Musk by Ashlee Vance(941)
Snowden by Glenn Greenwald(882)
Milkman by Anna Burns(868)
PUB0222685 by Unknown(853)
Steve Jobs by Walter Isaacson(825)
El Arte de la Guerra by Sun Tzu(782)
Filosofía del Derecho by Georg Wilhelm Friedrich Hegel(749)
PRIMERA PARTE by Usuario(745)
Gaia by James E. Lovelock(724)
El arte de la guerra by Sun Tzu(714)
Steve Jobs, la biografía by Walter Isaacson(702)
La física del futuro by Michio Kaku(697)
El enemigo conoce el sistema by Marta Peirano(673)
El colgajo by Philippe Lançon(673)
Así se domina el mundo by Pedro Baños(670)
VAMOS A LA VIDA by unknow(668)